//
//  HMStatues.swift
//  MyWeibo
//
//  Created by apple on 16/4/21.
//  Copyright © 2016年 apple. All rights reserved.
//  微博首页的模型用来处理数据

import UIKit

class HMStatus: NSObject {
    
    //微博id
    var id : Int64 = 0
    //当前微博内容属性
    var text : String?
    /// 微博的创建时间
    var created_at: String?
    /// 来源
    var source: String?
    
    //配图数组
    var pic_urls:[HMStatusPhotoInfo]?
    
    /// 当前微博的用户信息
    var user: HMUser?
    
    /// 当前微博转发微博，因为其内部字段与 HMStatus 一样，所以就设置类型为 HMStatu
    var retweeted_status: HMStatus?
    
    //字典转模型  添加字典转模型的构造函数
    init( dicts:[String:AnyObject] ) {
        
        super.init()
        
        setValuesForKeysWithDictionary(dicts)
    }
    
    //添加找不到相对应key的方法
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
        
    }
    
    //如果存在user手动转模型
    override func setValue(value: AnyObject?, forKey key: String) {
        
        if key == "user" {
            
            guard let dict = value as? [String:AnyObject] else{
                
                return
            }
            user = HMUser(dict: dict)
        }else if key == "retweeted_status" {
            // 手动转模型
            guard let dict = value as? [String: AnyObject] else {
                return
            }
            retweeted_status = HMStatus(dicts: dict)
            
            //如果存在就再转一层
        }else if key == "pic_urls"{
            
            //取到字典数组
            guard let dicts = value as? [[String: AnyObject]] else {
                
                return
            }
            //手动双层转换模型
            //创建一个存储model的数组
            var tempArray = [HMStatusPhotoInfo]()
            
            //遍历字典数组
            for dict in dicts {
                
                let ap = HMStatusPhotoInfo(dict: dict)
                //添加进数组
                tempArray.append(ap)
            }
            //赋值给属性
            pic_urls = tempArray
            
        }else{
            
            super.setValue(value, forKey: key)
        }
    }
    
}
